jjzjj

php - foreach by reference 循环中 unset 的奇怪行为

全部标签

ruby - 缓慢的 Ruby 正则表达式通过奇怪的变化变得快速

我一直在调试网站以查找页面加载时间过长的根源,并将其缩小为用于从文本中提取URL的正则表达式:/(?:([\w+.-]+):\/\/|(?:www\.))[^\s在一大块文本上运行大约需要3秒。我发现如果我将第一个子句的逆语句添加到正则表达式((?:[^\w+.-]|^))的开头,它几乎会立即运行:/(?:[^\w+.-]|^)(?:([\w+.-]++):\/\/|(?:www\.))[^\s在我看来,添加的子句根本不应该影响正则表达式,因为没有什么可以导致该子句失败(因为这些字符将与“[\w+.-]++”子句匹配)。为什么这会使正则表达式运行得更快?编辑有些人要求提供我正在尝试做的

ruby - 奇怪的 Ruby 类初始化逻辑?

我在我的应用程序中集成的一些开源代码有一些类包含实现该效果的代码:classSomeClass据我所知,self.new和initialize都做同样的事情——后者是“构建期间”,前者是“构建后”,在我看来,这是一种可怕的模式-为什么将对象初始化分成两部分,其中一个显然是“错误的想法(tm)”? 最佳答案 理想情况下,我想看看super().tap{|o|里面有什么block,因为虽然这看起来像是不好的做法,但也许在initialize之前或之后需要一些交互被称为。如果没有上下文,您可能只是在看一些有效但在Ruby中不被认为是好的做

ruby - 与 block 一起使用时,ruby Hash#merge 的行为是什么

它似乎没有被记录很多:hsh.merge(other_hash){|key,oldval,newval|block}→a_hashhttp://ruby-doc.org/core/classes/Hash.html#M002880 最佳答案 正如预期的那样,生成的散列将包含一个block返回的值,该block针对存在于两个正在合并的散列中的每个键:>>h1={:a=>3,:b=>5,:c=>6}=>{:a=>3,:b=>5,:c=>6}>>h2={:a=>4,:b=>7,:d=>8}=>{:a=>4,:b=>7,:d=>8}>>h1

ruby-on-rails - PHP 开发人员学习 Ruby 和 Ruby on Rails

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我对学习Rails很感兴趣已经有一段时间了,我觉得现在正是浸入其中并实际动手实践的好时机。在过去的一周里,我阅读了所有我能找到的关于Ruby和RubyonRails的免费电子书。我刚刚读完RubyEssentials。我也一直在玩htt

ruby - 带有临时文件的奇怪的 Ruby IO

这让我发疯。请考虑以下事项:require'open-uri'#setuptempfileextname=File.extnamefile_urlbasename=File.basename(file_url,extname)file=Tempfile.new([basename,extname])#readformURIintotempfileuri=URI.parse(file_url)num_bytes_writen=file.write(uri.read)puts"Wrote#{num_bytes_writen}bytes"#Readingfrommytempfileputs"

ruby - Debian 上的 ruby​​gems 有什么用?这是不同的和奇怪的

我至少注意到Debian上的ruby​​gems有以下奇怪之处(在我的例子中是5.0lenny):软件包进入不同的安装位置:/var/lib/gems与/usr/lib/ruby/gemsdebian软件包是ruby​​gems1.3.6,将ruby​​gems更新到最新版本(1.3.7)不起作用:$sudogemupdate--systemERROR:Whileexecutinggem...(RuntimeError)gemupdate--systemisdisabledonDebian.RubyGemscanbeupdatedusingtheofficialDebianreposi

ruby - `var = something rescue nil` 行为

在Ruby中,您可以在赋值结束时编写rescue以捕获可能出现的任何错误。我有一个函数(如下:a_function_that_may_fail),如果不满足某些条件,让它抛出错误很方便。以下代码运行良好post={}#OtherHashstuffpost['Caption']=a_function_that_may_failrescuenil但是,如果函数失败,我什至不希望设置post['Caption']。我知道我能做到:beginpost['Caption']=a_function_that_may_failrescueend但这感觉有点过分-有更简单的解决方案吗?

ruby-on-rails - Ruby 相当于 PHP 的 ucfirst() 函数

在Ruby中(使用Rails,如果相关)将字符串首字母大写的最佳方法是什么?请注意String#capitalize不是我想要的,因为除了将字符串的首字母大写外,此函数还使所有其他字符变为小写(这是我不想要的——我想让它们保持原样):>>"aA".capitalize=>"Aa" 最佳答案 在Rails中你有String#titleize方法:"测试字符串标题化方法".titleize#=>"测试字符串标题化方法" 关于ruby-on-rails-Ruby相当于PHP的ucfirst()

ruby-on-rails - 奇怪的 ActiveRecord 问题——比如生成无效的 SQL

最近我们部署了一个新版本的应用程序,从那时起我们就发现ActiveRecord存在一些非常奇怪的问题。例如,这是它每天生成数百次的查询片段,通常是正确的:`entries`.`style`ASt1_r25,`entries`.`pdf_visibility`AS,`entries`.`web_visibility`ASt1_r27这不是打字错误,t1_r26不见了,虽然它应该在的地方有一个空格。但只有那一次。这也不是手写SQL,而是ActiveRecord编写查询并决定所有占位符变量。它同样拙劣地破坏了其他查询,将不应该留空(甚至不应该留空)的东西留空,但只是偶尔留空一次。大多数时候都

ruby-on-rails - 使用 utf8 字符的 ruby​​ 正则表达式在 rails 中的奇怪行为

使用非标准utf-8字符时,我的验证正则表达式之一出现问题。因此,我进行了一些实验,发现ruby​​正则表达式在rails环境或普通ruby​​中表现不同。我用中文字符串在这里发布我的实验。在ruby中“纯”:string="運動會"putsstring[/\A[\w]*\z/]=>match"運動會"-ok在rails上:#coding:utf-8task:test=>:environmentdostring="運動會"putsstring[/\A[\w]*\z/]end$raketest=>nothing-notok如果我省略#coding:utf-8,它将带有invalidmul